//
//  Tool.h
//  适配
//
//  Created by 孙海琛 on 16/4/15.
//  Copyright © 2016年 tiannu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "sys/utsname.h"
#import <netdb.h>
#import <objc/runtime.h>
#import <SystemConfiguration/SCNetworkReachability.h>
//#import "MyInfoModel.h"
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>
//#import "OrderCellModel.h"
//#import "OrderStatusModel.h"

#import "AppDelegate.h"
@interface Tool : NSObject

+ (instancetype)shareTool;

//初始化订单状态
- (void)initializeOrderStatus;
//根据type和subtype获取订单状态
- (NSString *)getOrderStatusWithType:(int) type andSubType:(int) subType;
/**
 *  订单状态模型
 */
//@property (nonatomic,strong) NSMutableArray *orderStatusArr;
/**
 *  用户模型
 */
//@property (nonatomic,strong) MyInfoModel *userModel;

//退货模型
//@property (nonatomic,strong) item *orderModel;
//@property (nonatomic,strong) item *partsModel;
/**
 *  根据字的长度计算
 */
+(CGSize)sizeOfStr:(NSString *)str andFont:(UIFont *)font andMaxSize:(CGSize)size andLineBreakMode:(NSLineBreakMode)mode;
/**
 *  计算可变NSMutableAttributedString字符串高度
 *  font:字体大小  widths：控件宽度 line:行间距
 */
+(CGSize)sizeOfStrArt:(NSMutableAttributedString *)str andFont:(CGFloat)font andMaxSizeWidth:(NSInteger)widths lineSpacing:(float)line;

/**
 *  颜色显示
 */
#pragma mark - 颜色转换 IOS中十六进制的颜色转换为UIColor
+ (UIColor *) colorWithHexString: (NSString *)color;

+(NSString *)stringFromChURL:(NSString *)str;
/**
 *  检查当前设备是什么？
 */
+ (NSString*)getCurrentDeviceModel;
/**
 *  json 字符串转字典或数组
 */
+ (instancetype )dictionaryWithJsonString:(NSString *)jsonString;
//去除多余分割线
+ (void)setExtraCellLineHidden: (UITableView *)tableView;

// 将字典或者数组转化为JSON串
+ (NSString *)toJSONData:(id)theData;
// 模型转字典
+(NSDictionary*)getObjectData:(id)obj;
/*
 *判断是否连网
 *返回值:yes 以连网
 *      no  未连网
 */
+(BOOL) connectedToNetwork;
//判断当前网络
+ (void)exitNetwork;
//获取系统当前时间
+(NSString *)gainDate;

/*
 *时间转时间戳
 *参数：传入转换时间
 *返回值:转换后时间戳
 */
+(NSString *)zhDate:(NSString *)strDate;
/*
 *获取本地配置文件(json)
 *配置tabbartitle以及图片名称
 */
+(id)jsonFile:(NSString *)fileName;

+(NSString *)jsonFileID:(NSString *)address;

//自定义输入地址
//- (NSString *)isEqueHttp;

//图片加载url
+ (UIImage *) imageFromURLString: (NSString *) urlstring;
//计算文件大小 缓存机制
+ (float)folderSizeAtPath:(NSString *)path;
//获取app版本号
+ (NSString *)versionIndex;
//获取流量信息
+ (NSArray *)getDataCounters;
/**
 *  获取当前视图所在控制器
 */
+ (UIViewController *)fetchCurrentViewController;
//获取设备唯一标示
+ (NSString*)getUUID;



/**
 登录显示
 */
+(void)addLoginViewShow:(UIViewController *)controller;

/**
 登录显示

 @param block 登录成功后回调方法
 */
+(void)addLoginViewShow:(UIViewController *)controller success:(void (^)(void))block;

/**
 导航
 */
- (void)showActionSheetInView:(UIView *) view latitude:(CGFloat) latitude longitude:(CGFloat) longitude;

/*
通过url中的width宽 height高 获取图片高度

@param urlString 带参数的url

@return float 高

*/
+ (float)toolImgHeightParamsWithUrlString:(NSString*)urlString;
+ (float)toolImgHeightParamsWithUrlString:(NSString*)urlString imgWidth:(CGFloat)imgWidth;

/**
 获取url中的参数并返回

 @param urlString 带参数的url
 
 @return NSDictionary:参数字典
 
 */

+ (NSDictionary*)toolGetParamsWithUrlString:(NSString*)urlString;

/**
 判断是否是url地址
 
 @param url url
 
 @return 返回值
 
 */
+ (BOOL)isUrlAddress:(NSString*)url;

// 判断用户是否允许接收通知
+ (BOOL)isUserNotificationEnable;
// 如果用户关闭了接收通知功能，该方法可以跳转到APP设置页面进行修改  iOS版本 >=8.0 处理逻辑
+ (void)goToAppSystemSetting;
//根据当前所在控制器push方法进行pop
+ (void)popOrdissmissMethod;

@end











